package org.mx.dal.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 索引别名注解定义
 * 
 * @author john.peng
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ElasticIndexAlias {
	/**
	 * 指定的索引别名，如果没有指定，则使用该实体类的名字<pre>Class.getName()</pre>。
	 *
	 * @return 索引别名
	 */
	String value() default "";

	/**
	 * filter
	 * @return filter
	 */
	ElasticIndexAliasFilter filter();

	/**
	 * index routing
	 * @return index routing
	 */
	String index_routing();

	/**
	 * 是否隐藏
	 * @return 是否隐藏
	 */
	boolean is_hidden();

	/**
	 * 是否write index
	 * @return 是否write index
	 */
	boolean is_write_index();

	/**
	 * routing
	 * @return routing
	 */
	String routing();

	/**
	 * search routing
	 * @return routing
	 */
	String search_routing();
}
